#  设计备份工具
# v1版本的设计：
#  需要备份的文件和目录在列表中指定
# 备份存在在一个主备份目录中
# 备份文件压缩成zip格式
# zip备份文件的命名为文件名+日期+时间.zip
# v2 改进：
# 按照备份日期作为一个子文件夹
# v4 支持用户输入名称


import os
import time

source = ['D:\\study\\python\\just-to-backup']

target_dir = 'D:\\study\\python\\backup'

if not os.path.exists(target_dir):
    os.mkdir(target_dir)
    print("created directory ", target_dir)

# 压缩文件名
today = target_dir + os.sep + time.strftime('%Y%m%d')
now = time.strftime("%H%M%S")

# 用户输入备份名称
comment = input("enter a comment -->")
if len(comment) == 0:
    target = today + os.sep + now + '.zip'
else:
    target = today + os.sep + now + '_' + comment.replace(' ', '_') + '.zip'

if not os.path.exists(today):
    os.mkdir(today)
    print("created directory ", today)

zip_command = 'zip -r {0} {1}'.format(target, ' '.join(source))

# 进行备份
print('zip command :', zip_command)
print("running:")
if os.system(zip_command) == 0:
    print('backup success to ', target)
else:
    print('backup failed')
